package cn.iocoder.yudao.module.system.service.notice;


import cn.iocoder.yudao.framework.mybatis.core.query.MPJLambdaWrapperX;
import cn.iocoder.yudao.module.system.dal.dataobject.notice.NoticeDO;
import cn.iocoder.yudao.module.system.dal.dataobject.notice.NoticeWithFileDO;
import cn.iocoder.yudao.module.system.dal.mysql.notice.NoticeMapper;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;

import java.util.*;

import cn.iocoder.yudao.module.system.controller.admin.notice.vo.*;
import cn.iocoder.yudao.module.system.dal.dataobject.notice.NoticeFileDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;

import cn.iocoder.yudao.module.system.dal.mysql.notice.NoticeFileMapper;

import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;

/**
 * 通知公告附件 Service 实现类
 *
 * @author 芋道源码
 */
@Service
@Validated
public class NoticeFileServiceImpl implements NoticeFileService {

    @Resource
    private NoticeFileMapper noticeFileMapper;

    @Override
    public Long createNoticeFile(NoticeFileSaveReqVO createReqVO) {
        // 插入
        NoticeFileDO noticeFile = BeanUtils.toBean(createReqVO, NoticeFileDO.class);
        noticeFileMapper.insert(noticeFile);
        // 返回
        return noticeFile.getId();
    }

    @Override
    public void updateNoticeFile(NoticeFileSaveReqVO updateReqVO) {
        // 更新
        NoticeFileDO updateObj = BeanUtils.toBean(updateReqVO, NoticeFileDO.class);
        noticeFileMapper.updateById(updateObj);
    }

    @Override
    public void deleteNoticeFile(Long id) {
        // 删除
        noticeFileMapper.deleteById(id);
    }

    @Override
    public NoticeFileDO getNoticeFile(Long id) {
        return noticeFileMapper.selectById(id);
    }

}
